package com.cskaoyan.javase.homework.day09.stage3_demo;


/**
 * @description: 小练习阶段三
 * @author: wuguidong@cskaoyan.onaliyun.com
 **/

import com.cskaoyan.javase.homework.day09.stage3_demo.entity.Student;
import com.cskaoyan.javase.homework.day09.stage3_demo.entity.StudentList;

/**
 * 本类的作用是什么?
 * 本类应该有哪些成员?
 *
 */
public class ConsoleManage {
    //学生列表对象 需要在这个类中使用，所以作为它的成员变量
    //默认的长度是10
    private StudentList sls = new StudentList(10);

    //默认无参构造里，加几个Student对象作为数组的初始值
    public ConsoleManage() {
        Student s1 = new Student(1, "张三", "男", "Java31th", 18, "18888888888");
        Student s2 = new Student(2, "李四", "女", "Java31th", 28, "17777777777");
        //调用方法 加进数组中
        sls.createStudent(s1);
        sls.createStudent(s2);
    }

    public static void main(String[] args) {
        ConsoleManage cm = new ConsoleManage();
        cm.start();
    }

    public void start() {
        //该标志指示循环是否继续进行,即是否仍然输出菜单
        boolean loopFlag = true;
        while (loopFlag) {
            //调用方法,输出菜单
            showMenu();
            //键盘录入 选择对应功能
            int input = ScannerUtils.getMenuByScanner();
            switch (input) {
                case 1:
                    //打印学生列表
                    consolePrintStudentArr();
                    break;
                case 2:
                    //增
                    consoleCreateStudent();
                    break;
                case 3:
                    //删
                    break;
                case 4:
                    //改
                    break;
                case 5:
                    //查
                    break;
                case 6:
                    System.out.println("确认退出吗（1/2）：");
                    int quitFlag = ScannerUtils.getFlagByScanner();
                    if (quitFlag == 1) {
                        loopFlag = false;
                        System.out.println("感谢使用本系统！");
                        break;
                    }
                    System.out.println("欢迎继续使用！");
                    break;
            }
        }
    }

    private void consoleCreateStudent() {
        //新增学生对象,首先要获取一个对象
        Student stu = ScannerUtils.getStudentInstanceByScanner(sls);
        if (stu == null){
            System.out.println("你输入学号重复");
            return;
        }
        boolean flag = sls.createStudent(stu);
        if (flag) System.out.println("录入成功!");
        else System.out.println("录入失败");
    }

    private void consolePrintStudentArr() {
        System.out.println("--------------------------学生列表---------------------------");
        Student[] results = sls.getArrayExcludeNullElement();
        if (results == null || results.length == 0) {
            System.out.println("学生信息为空!");
            return;
        }
        //数组是正常数组,开始打印学生信息
        System.out.println("学号\t姓名\t性别\t班级\t年龄\t手机号\t");
        for (int i = 0; i < results.length; i++) {
            results[i].printStudent();
        }
    }


    private void showMenu() {
        System.out.println("\n-----------------王道Java学生管理系统-----------------\n");
        System.out.println("                   1.学 生 列 表");
        System.out.println("                   2.增 加 学 生");
        System.out.println("                   3.删 除 学 生");
        System.out.println("                   4.修 改 学 生");
        System.out.println("                   5.查 询 学 生");
        System.out.println("                   6.退 出 系 统\n");
        System.out.print("请选择功能(1-6)：");
    }

}
